home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir37 / mxmnu241.zip / MARXREAD.ME < prev    next >
Text File  |  1993-01-01  |  18KB  |  718 lines

  1. Version 2.39
  2.  
  3. 06-22-92
  4.  
  5. Did some serious internal cleanup and I'd like to think everything works
  6. better but if there is anything that doesn't work that used to, let me
  7. know and I'll fix it.
  8.  
  9. I'm in the process of expanding the marxmenu syntax allowing you to do
  10. things that you couldn't do before. You can now return Arrays as results
  11. from procedures.
  12.  
  13.  Example:
  14.    var X
  15.  
  16.    X = Test
  17.  
  18.    Procedure Test
  19.    var Z
  20.       ReadTextFile ('MARX.BAT',Z)
  21.       Return Z
  22.    EndProc
  23.  
  24. I've also improved the Novell menu translator so that it works better
  25. with nasty menus.
  26.  
  27. 07-01-92
  28.  
  29. Made a modification to be compatible with Software Carousel from Soft
  30. Logic. MarxMenu will now find the master environment under Carousel and
  31. it will read that TaskNumber and create unique batch file names under
  32. each window.
  33.  
  34. The LockWord feature can now be used with the UseNovPassword feature. If
  35. both are used then either the novell password or the lockword will
  36. unblank the screen. This allows you to create a master password that
  37. only the supervisor knows so that the supervisor can unlock anyones
  38. screen.
  39.  
  40. 07-13-92
  41.  
  42. MarxMenu can now read and write the CMOS ram and the battery backed up
  43. clock.
  44.  
  45. CMOS (Number) : Number
  46. CMOS allows to to read and write the CMOS ram on the clock chip.
  47.  
  48.  Example:
  49.     Writeln CMOS(16)
  50.     CMOS(16) = $42
  51.  
  52.  
  53. NovUsedVolumeSpace (Path) : Number
  54. Returns the used volume space of Path.
  55.  
  56.  Example:
  57.    Writeln NovUsedVolumeSpace('F:')
  58.  
  59.  
  60. ReadSqDirectory (Path,2DArray)
  61. ReadSqDirectory works like ReadDirectory but rather than just returning
  62. the file name it return all the information about the file in a 2
  63. dimensional array.  The fields of the array are as follows:
  64.  
  65.  1 - Name
  66.  2 - Date last Updated
  67.  3 - Size
  68.  4 - Attributes
  69.  
  70. Under Netware there are several other fields:
  71.  
  72.  5 - Date Created
  73.  6 - Date last Accessed
  74.  7 - Date last Archived
  75.  8 - Owner
  76.  
  77.  Example:
  78.  Var X Y
  79.  ReadSqDirectory('*.EXE',X)
  80.  Writeln 'Listing File Name, Date Last Accessed, and Size.'
  81.  Loop X
  82.     Y = LoopIndex
  83.     Writeln X[Y,1] ' ' DateString(X[Y,6]) ' ' X[Y,3]
  84.  EndLoop
  85.  
  86.  
  87. DiskType (Drive) : String
  88. DiskType returns the type of disk of a drive letter. Types recognized
  89. are:
  90.  
  91.  FLOPPY360
  92.  FLOPPY720
  93.  FLOPPY12
  94.  FLOPPY14
  95.  RAMDISK
  96.  SUBST
  97.  HARDDISK
  98.  BERNOULI
  99.  NOVELL
  100.  UNKNOWN
  101.  
  102.  Example
  103.  Writeln DiskType('F')
  104.  
  105.  
  106. 08-06-92
  107.  
  108. ReadlnAsc (File,Array)
  109. ReadlnAsc reads a single line from a comma delimited Ascii file and
  110. breaks the fields out into an array. All fields in quotes are considered
  111. strings. If the field is just comma delimited and numeric then it is
  112. converted to a number. If it has a decimal point then it is converted to
  113. a real number.
  114.  
  115. 08-18-92
  116.  
  117. In addition to the SetEnv and ReadEnv commands, MarxMenu now can address
  118. environment variables as if they were local variables.
  119.  
  120.  Example:
  121.    Writeln %PATH%
  122.    %PATH% = 'C:\;C:\DOS;'
  123.  
  124. ===============================================================
  125.  
  126. Version 2.40
  127.  
  128. 09-16-92
  129.  
  130. Well since I rolled over to 2.4 I decided to do something special a make
  131. a semi-major leap forward. I'm added modem communication features to
  132. MarxMenu. My intention is eventually to use MarxMenu for ny BBS software
  133. instead of TBBS which has been nothing but grief.
  134.  
  135. So far I have XModem, YModem, ZModem anf Kermit but I'm not done with
  136. them so I'm not going to document them yet.
  137.  
  138.  
  139. ComPort : Number
  140. Sets or reads the port that communication commands will effect.
  141.  
  142.  Example:
  143.    ComPort = Com1
  144.    Writeln ComPort
  145.  
  146.  
  147. ComInitPort (Baud,DataBits,Parity,StopBits)
  148. Initializes the ComPort. This must be run first before any other comport
  149. command is executed.
  150.  
  151.  Example:
  152.    ComInitPort(38400,8,'N',1)
  153.  
  154. ComBaud : Number
  155. Reads or sets the baud rate. Range from 110 to 115,000 baud.
  156.  
  157.  Example:
  158.    ComBaud = 9600
  159.    Writeln ComBaud
  160.  
  161.  
  162. ComDataBits : Number
  163. Reads or sets the number of data bits. Range 5 - 8 bits.
  164.  
  165.  Example:
  166.    ComDataBits = 8
  167.    Writeln ComDataBits
  168.  
  169.  
  170. ComStopBits : Number
  171. Reads or sets the number of stop bits. Range 1 - 2 bits.
  172.  
  173.  Example:
  174.    ComStopBits = 1
  175.    Writeln ComStopBits
  176.  
  177.  
  178. ComParity : String
  179. Reads or sets the parity.
  180.  
  181.  N - None
  182.  E - Even
  183.  O - Odd
  184.  M - Mark
  185.  S - Space
  186.  
  187.  Example:
  188.    ComParity = 'E'
  189.    Writleln ComParity
  190.  
  191. ComDone
  192. UnInitializes the port. Dealocates memory used by ComInitPort and
  193. restores interupt vectors.
  194.  
  195.  
  196. ComDTR (On/Off)
  197. Turns DTR (Data Terminal Ready) on or off. Setting DTR to off can be
  198. used to hang up a modem.
  199.  
  200.  Example:
  201.    ComDTR Off
  202.  
  203.  
  204. ComRTS (On/Off)
  205. Turns RTS (Request to Send) on and off.
  206.  
  207.  Example:
  208.    ComRTS On
  209.  
  210.  
  211. ComCharReady : Boolean
  212. Tests to see if a character has been received in the input buffer.
  213.  
  214.  Example:
  215.    if ComCharReady then Ch = ComReadChar
  216.  
  217.  
  218. ComReadChar : String
  219. Reads one character from the com port or input buffer. It will wait up
  220. to ComReadTimeout ticks for the character. If no character is received
  221. then ComTimeOut is set to True.
  222.  
  223.  Example:
  224.    Ch = ComReadChar
  225.  
  226.  
  227. ComReadln : String
  228. Reads a line from the com port or input buffer. It will wait up to
  229. ComReadTimeout ticks for the character. If no character is received then
  230. ComTimeOut is set to True.
  231.  
  232.  Example:
  233.    if ComReadln = 'OK' then
  234.  
  235.  
  236. ComWrite (String)
  237. Writes a string to the com port with no CR.
  238.  
  239.  Example:
  240.    ComWrite '+++'
  241.  
  242.  
  243. ComWriteln (String)
  244. Writes a string to the com port with CR.
  245.  
  246.  Example:
  247.    ComWriteln 'ATTD 1-417-866-1665'
  248.  
  249.  
  250. ComTimeout : Boolean
  251. ComTimeout is set to True if the last command ended in a timeout error.
  252.  
  253.  Example:
  254.    if ComTimeout then Writeln 'Something is stuck!'
  255.  
  256.  
  257. ComReadTimeout : Number
  258. This variable controls the number of timer ticks (18.2 ticks per second)
  259. that a read command will wait to receive data.
  260.  
  261.  Example:
  262.     ComReadTimeout = 36  ;2 seconds
  263.  
  264.  
  265. ComWriteTimeout : Number
  266. This variable controls the number of timer ticks (18.2 ticks per second)
  267. that a write command will wait to send data.
  268.  
  269.  Example:
  270.     ComWriteTimeout = 36  ;2 seconds
  271.  
  272.  
  273. 09-28-92
  274.  
  275. NovShellVersion : String
  276.  
  277. Returns the Novell shell version number.
  278.  
  279.  
  280. 10-19-92
  281.  
  282. Added new syntax option to the Mid string function allowing you to write
  283. to the middle of a string. See the MID function.
  284.  
  285.  
  286. 10-26-92
  287. Added a new internation command.
  288.  
  289. CurrencySymbol : String
  290. Returns the currency symbol based on the country code.
  291.  
  292.  
  293. 11-09-92
  294.  
  295. ComCD : Boolean
  296. Returns the status of the carrier detect line on serial ports.
  297.  
  298. ComRI : Boolean
  299. Returns the status of the ring indicator line on serial ports.
  300.  
  301. ComBreakReceived : Boolean
  302. Returns True if a break signal has been received at the serial port.
  303.  
  304. ComSendBreak
  305. Sends a break signal out the modem.
  306.  
  307. NovBinderyAccess : Number
  308. NovBinderyAccess returns the users bindery access level.
  309.  
  310.  0 - Not logged in.
  311.  1 - Logged in.
  312.  2 - Object Access.
  313.  3 - Supervisor Access.
  314.  
  315.  
  316. WorkString : String
  317. WorkString is a MarxMenu variable that contains the string that Readln
  318. is editing. This string can be accessed by KeyEvent routines so that a
  319. KeyEvent procedure can set what is being entered.
  320.  
  321.  Example:
  322.    WorkString = PickOne(List)
  323.  
  324.  
  325. 11-13-92
  326.  
  327. I changed the syntax on KeyEvent so if you got MarxMenu in the last 4
  328. days and now you get an error on KeyEvent, make a few simple changes.
  329.  
  330. KeyEvent (Key) : Procedure
  331. KeyEvent allows you to assign a procedure to a key so that any time the
  332. key is pressed the procedure is called. Setting a key to Nil clears the
  333. key. This command can be used to create global OnKey.
  334.  
  335.  Example:
  336.     KeyEvent(F1) = loc ShowHelp   ;runs ShowHelp when F1 is pressed
  337.     KeyEvent(F1) = Nil            ;clears F1 key
  338.     Run KeyEvent(F1)              ;executes procedure assigned to F1
  339.  
  340.  
  341. 11-16-92
  342.  
  343. ComReceiveXmodem (FileName)
  344. Receive a file by Xmodem protocol.
  345.  
  346.  Example:
  347.    ComRecieveXmodem 'MXMENU.ZIP'
  348.  
  349.  
  350. ComSendXmodem (FileName)
  351. Send a file by Xmodem protocol.
  352.  
  353.  Example:
  354.    ComSendXmodem 'MXMENU.ZIP'
  355.  
  356.  
  357. ComReceive1kXmodem (FileName)
  358. Receive a file by 1k Xmodem protocol.
  359.  
  360.  Example:
  361.    ComRecieve1kXmodem 'MXMENU.ZIP'
  362.  
  363.  
  364. ComSend1kXmodem (FileName)
  365. Send a file by 1k Xmodem protocol.
  366.  
  367.  Example:
  368.    ComSend1kXmodem 'MXMENU.ZIP'
  369.  
  370.  
  371. ComReceiveYmodem
  372. Receive files by Ymodem protocol.
  373.  
  374.  Example:
  375.    ComRecieveYmodem
  376.  
  377.  
  378. ComSendYmodem (FileName or Array)
  379. Send files by Ymodem protocol. If you pass a file name then it sends
  380. that file. If you pass it an array then it will send all the files in
  381. that array.
  382.  
  383.  Example:
  384.    ComSendYmodem 'MXMENU.ZIP'
  385.  
  386.  Example:
  387.    AppendArray(FileList,'FILE1')
  388.    AppendArray(FileList,'FILE2')
  389.    ComSendYmodem FileList
  390.  
  391.  
  392. ComReceiveYmodemG
  393. Receive files by YmodemG protocol.
  394.  
  395.  Example:
  396.    ComRecieveYmodemG
  397.  
  398.  
  399. ComSendYmodemG (FileName or Array)
  400. Send files by YmodemG protocol. If you pass a file name then it sends
  401. that file. If you pass it an array then it will send all the files in
  402. that array.
  403.  
  404.  Example:
  405.    ComSendYmodemG 'MXMENU.ZIP'
  406.  
  407.  Example:
  408.    AppendArray(FileList,'FILE1')
  409.    AppendArray(FileList,'FILE2')
  410.    ComSendYmodemG FileList
  411.  
  412.  
  413. ComReceiveZmodem
  414. Receive files by Zmodem protocol.
  415.  
  416.  Example:
  417.    ComRecieveZmodem
  418.  
  419.  
  420. ComSendZmodem (FileName or Array)
  421. Send files by Zmodem protocol. If you pass a file name then it sends
  422. that file. If you pass it an array then it will send all the files in
  423. that array.
  424.  
  425.  Example:
  426.    ComSendZmodem 'MXMENU.ZIP'
  427.  
  428.  Example:
  429.    AppendArray(FileList,'FILE1')
  430.    AppendArray(FileList,'FILE2')
  431.    ComSendZmodem FileList
  432.  
  433.  
  434. ComReceiveKermit
  435. Receive files by Kermit protocol.
  436.  
  437.  Example:
  438.    ComRecieveKermit
  439.  
  440.  
  441. ComSendKermit (FileName or Array)
  442. Send files by Kermit protocol. If you pass a file name then it sends
  443. that file. If you pass it an array then it will send all the files in
  444. that array.
  445.  
  446.  Example:
  447.    ComSendKermit 'MXMENU.ZIP'
  448.  
  449.  Example:
  450.    AppendArray(FileList,'FILE1')
  451.    AppendArray(FileList,'FILE2')
  452.    ComSendKermit FileList
  453.  
  454.  
  455. ComXmitAbortProgram
  456. ComXmitAbortProgram is called while uploads and downloads are in
  457. progress. If this is set to a MarxMenu procedure then you can write your
  458. own control routine to control protocol abort. Your program needs to
  459. return either a True to abort or a False to not abort.
  460.  
  461.  Example:
  462.    ComXmitAbortProgram = loc XmitAbort
  463.  
  464.    Procedure XmitAbort
  465.       if not KbdReady then Return False
  466.       Return ReadKey = Esc
  467.    EndProc
  468.  
  469.  
  470. ComXmitStatusProgram
  471. ComXmitStatusProgram is called while uploads and downloads are in
  472. progress. If this is set to a MarxMenu procedure then you can write your
  473. own status display routine to show progress status.
  474.  
  475.  
  476. ComXmitStarting : Boolean
  477. This variable is set to True to indicate the beginning for an upload or
  478. download. It is used to start a communications status window.
  479.  
  480.  
  481. ComXmitEnding : Boolean
  482. This variable is set to True to indicate the endin for an upload or
  483. download. It is used to end a communications status window.
  484.  
  485.  
  486. ComBytesRemaining : Number
  487. During an upload or download ComBytesRemaining returns the number of
  488. bytes that is yet to be transferred.
  489.  
  490.  
  491. ComBytesTransferred : Number
  492. During an upload or download ComBytesTransferred returns the number of
  493. bytes that has been transferred.
  494.  
  495.  
  496. ComBlockSize : Number
  497. During an upload or download ComBlockSize returns the number of bytes in
  498. the block that's being transferred.
  499.  
  500.  
  501. ComBlockNum : Number
  502. During an upload or download ComBlockNum returns the current block
  503. number.
  504.  
  505.  
  506. ComBlockErrors : Number
  507. During an upload or download ComBlockErrors returns the number of
  508. errors that occurred during the current block.
  509.  
  510.  
  511. ComTotalErrors : Number
  512. During an upload or download ComTotalErrors returns the number of
  513. errors that occurred during the current file transfer.
  514.  
  515.  
  516. ComFileName : String
  517. During an upload or download ComFileName returns the name of the file
  518. being transferred.
  519.  
  520.  
  521. ComFileSize : Number
  522. During an upload or download ComFileSize returns the size of the file
  523. being transferred.
  524.  
  525.  
  526. ComProtocol : String
  527. During an upload or download ComProtocol returns the name of the
  528. transfer protocol being used.
  529.  
  530.  
  531. 11-17-92
  532.  
  533. Made another change to KeyEvent. KeyEvents are attached to the current
  534. window. New windows inherit the KeyEvents from their parent window. But
  535. if you create a new KeyEvent in a window and then erase that window the
  536. new KeyEvent is erased and the KeyEvents of the parent window are
  537. restored. You can have completely different KeyEvents for each window
  538. and those events become active whenever the window becomes active.
  539.  
  540.  
  541. ===============================================================
  542.  
  543. Version 2.41
  544.  
  545. 12-07-92
  546.  
  547. I bumped up the version number since MarxMenu is now compiled with
  548. Borland Pascal 7.0 and I got new updated libraries.
  549.  
  550.  
  551. 12-14-92
  552.  
  553. Working on rewriting my BBS in MarxMenu so am finding out if these
  554. communication commands I put in here actually work.
  555.  
  556.  
  557. ComLastChar : String
  558.  
  559. ComLastChar returns the last character that was received with
  560. ComReadChar.
  561.  
  562.  
  563. ComLastLine : String
  564.  
  565. ComLastLine returns the last line that was recieved that is not a blank
  566. line. BackSpace characters are handled correctly.
  567.  
  568.  
  569. ComEchoRecChar : Boolean
  570.  
  571. When ComEchoRecChar is set to true then characters received are echoed
  572. back to the sender. This option is useful when writing a host
  573. communication program. The echoed character it intelegently processed.
  574.  
  575.  
  576. ComEchoSendChar : Boolean
  577.  
  578. When ComEchoSendChar is set to true then characters sent are echoed
  579. to the local screen. This option is useful when writing a host
  580. communication program. The echoed character it intelegently processed.
  581.  
  582.  
  583. ComWatchCD : Boolean
  584.  
  585. When ComWatchCD is set to true MarxMenu watches the carrier detect
  586. signal. If carrier detect is lost then several things happen. ComCDAbort
  587. is set to true. ComEchoSendChar and ComEchoRecChar are set to false.
  588. ComWrite and ComWriteln are disabled. ComCharReady is always true and
  589. ComReadChar returns a char 0 when read.
  590.  
  591. This function is there to reset a host program without having to build
  592. in a lot of error checking into the MarxMenu script. Setting ComWatchCD
  593. to false resets everything and allows you to prepare for the next call.
  594.  
  595. Only set ComWatchCD to true after you receive a carrier detect signal.
  596. It is also recommended that you insert a half second delay after
  597. receiving a connect to deal with slow modems in fast computers.
  598.  
  599.  
  600. ComCDAbort : Boolean
  601.  
  602. ComCDAbort is set to True if ComWatchCD is on and the carrier is lost.
  603. This is used as a signal to indicate that the modem has lost connection
  604. and the host program should reset and prepare for the next call.
  605.  
  606.  
  607. ComDrainSendBuffer
  608.  
  609. ComDrainSendBuffer waits till all the characters in the send buffer go
  610. to the modem. This allows the other end to get the last of the goodbye
  611. message without being cut off by a hangup. With buffered modems you
  612. should wait a few seconds after this command before hanging up the modem
  613. to ensure that all the data has been transferred.
  614.  
  615.  
  616. ComEmptySendBuffer
  617.  
  618. ComEmptySendBuffer trashes all the data in the send buffer that hasn't
  619. been transferred. This allows you to create a hot key effect and makes
  620. host programs act more responsive.
  621.  
  622.  
  623. ComEmptyRecBuffer
  624.  
  625. ComEmptyRecBuffer trashes the data in the receive buffer. This allows
  626. you to get rid of incoming trash data.
  627.  
  628.  
  629. 12-28-92
  630.  
  631. ComThisLine : String
  632.  
  633. ComThisLine returns a string of characters that has been received from
  634. the com port since the last CR. This can be used to see what prompts are
  635. being received for automatic script processing.
  636.  
  637.  Example:
  638.    if pos('Password',ComThisLine) > 0
  639.       ComWriteln 'Beast'
  640.    endif
  641.  
  642.  
  643. ComErrorLimit : Number
  644.  
  645. ComErrorLimit is the maximum number of errors that a file transfer can
  646. have before an automatic transfer abort occurs. If set to 0 then it will
  647. keep trying forever. The default limit is 100.
  648.  
  649.  
  650. ComUseInt14
  651.  
  652. ComUseInt14 sets MarxMenu to talk to the ports through the Int14 serial
  653. port routines. This can be used for network modem sharing applications
  654. or if for some reason you don't want to talk to the UART directly. The
  655. default Int14 routines are unbuffered.
  656.  
  657. Because of the limitations of the Int14 routines many of the more
  658. advance MarxMenu communications commands do nothing when this option is
  659. activated.
  660.  
  661.  
  662. ComUseUart
  663.  
  664. ComUseUart sets MarxMenu to talk to the UART directly. This is the
  665. default mode. This command can be used to switch back if you used the
  666. ComUseInt14 command.
  667.  
  668.  
  669. SetTimerTask (Loc Procedure,Ticks)
  670.  
  671. SetTimerTask allows for background multitasking or real time events. The
  672. Ticks parameter specifies the how often the task will run in clock ticks
  673. (18.2 times a second). If 6 ticks are specified then the task will run
  674. every 4 clock ticks or about 3 times a second. This command can be used
  675. to run scheduled events as well as periodic events.
  676.  
  677.  Example:
  678.  
  679.  
  680. Within (Start,End) : Boolean
  681. Within returns True if a value is within the range from Start to End.
  682. Within works with numbers and strings.
  683.  
  684.  Example:
  685.     if X within(5,7) then Write 'X is Within 5 to 7'
  686.     if not (Ch within('A','Z')) Write 'Lower Case'
  687.  
  688.  
  689. WritelnAsc (File,Array)
  690.  
  691. WritelnAsc writes 1 line to the end of a comma delimited ascii text
  692. file. Each element of the array becomes one field of that line.
  693.  
  694.  Example:
  695.    var A
  696.    A[1] = 'MARC PERKEL'
  697.    A[2] = 'ONION'
  698.    A[3] = 37
  699.    WritelnAsc('TEST.TXT',A)
  700.    ;appends "MARC PERKEL","ONION",37 to file TEST.TXT
  701.  
  702.  
  703. WriteAscTextFile (File,2DArray)
  704.  
  705. WriteAscTextFile writes a two dimensional array to a comma delimited
  706. ascii text file.
  707.  
  708.  
  709. 12-29-92
  710.  
  711. ComHWFlowControl (On/Off)
  712. ComHWFlowControl is used for hardware flow control for modems. The
  713. allows you to talk to the modem at a faster speed than the modem can
  714. transmit over the lines. The default is on.
  715.  
  716.  
  717.  
  718.